Message processing systems, for example, the multiprocessor data processing system 10 depicted in FIG. 1, require reliable message communication paths between respective ones of the processors 12.sub.1 . . . 12.sub.N. The exemplary system 10 of FIG. 1 employs an exemplary communication medium or switch network 20 commonly coupled to the processors 12. The processors may require respective communication adapters 14.sub.1 . . . 14.sub.N to control communications between each processor 12 and the medium 20 via respective connections 16.sub.1 . . . 16.sub.N. Communication between, for example, software application(s) executing on the processors 12 of system 10 can thus be provided via medium 20.
Because respective processors may be supporting different, asynchronous application software partitions, asychronous messaging becomes a useful form of communication between the processors. At a destination processor (e.g., processor 12.sub.N), incoming asychronous messages are conventionally buffered in a message receive queue. The application software executing on processor 12.sub.N is therefore often required to poll or monitor the queue to determine if any messages have arrived. However, obtaining the status of these received messages can cause additional overhead due to unnecessary polling when waiting for a particular message, or any message, to arrive. For some applications, this additional overhead may not significantly impact system performance, and can therefore be tolerated. However, for other applications, this additional overhead may severely impact performance and polling or monitoring the message receive queue becomes an unacceptable approach.
In addition to the above-noted concerns regarding the polling or monitoring of message queues by a destination processor, there may be circumstances in which a source processor (e.g., processor 12.sub.1) would prefer to expressly notify the message destination processor upon the arrival of a message having a certain type or priority.
What is required, therefore, is a flexible method and system, including the implementing hardware, software and data structures, which will provide the respective processors in the system and/or the application software running thereon additional options to effect notification of a destination upon the arrival of a message. This method and system should not impose any particular notification strategy, but rather should provide additional, programmable arrival notification options so that the most suitable option can be chosen in view of the requirements of a particular application.